package com.freemalll.merchant.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.freemalll.merchant.common.AbstractBaseEntity;
import com.freemalll.merchant.common.CompareField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;

/**
 * <p>
 * 商户法人信息
 * </p>
 *
 * @author songshixiong
 * @since 2025-06-04
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("mer_legal_info")
@Schema(description = "商户法人信息")
public class MerLegalInfo extends AbstractBaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键")
    @TableId(value = "legal_id", type = IdType.ASSIGN_UUID)
    @CompareField(value = "legal_id", skip = true)
    private String legalId;

    @Schema(description = "所属商户")
    @TableField("mer_id")
    @CompareField(value = "mer_id", skip = true)
    private String merId;

    @Schema(description = "法人姓名")
    @TableField("legal_man")
    @CompareField("legal_man")
    private String legalMan;

    @Schema(description = "法人身份证号")
    @TableField("legal_man_id_card")
    @CompareField("legal_man_id_card")
    private String legalManIdCard;

    @Schema(description = "法人手机号")
    @TableField("legal_man_phone")
    @CompareField("legal_man_phone")
    private String legalManPhone;

    @Schema(description = "法人身份证有效期起")
    @TableField("legal_validate_start")
    @CompareField("legal_validate_start")
    private String legalValidateStart;

    @Schema(description = "法人身份证有效期至")
    @TableField("legal_validate_end")
    @CompareField("legal_validate_end")
    private String legalValidateEnd;

    @Schema(description = "所属省")
    @TableField("legal_man_province")
    @CompareField("legal_man_province")
    private String legalManProvince;

    @Schema(description = "所属市")
    @TableField("legal_man_city")
    @CompareField("legal_man_city")
    private String legalManCity;

    @Schema(description = "所属区")
    @TableField("legal_man_country")
    @CompareField("legal_man_country")
    private String legalManCountry;

    @Schema(description = "详细地址")
    @TableField("legal_man_address")
    @CompareField("legal_man_address")
    private String legalManAddress;

    @Schema(description = "民族")
    @TableField("nationality")
    @CompareField("nationality")
    private String nationality;

    @Schema(description = "出生年月")
    @TableField("birthday")
    @CompareField("birthday")
    private String birthday;

}
